/**
 * 项目名称:
 *
 * @Author: 夏国倩
 * @Date: 2023/9/20 11:31
 * @Copyright
 */
package Collection;

import java.util.ArrayList;
import java.util.Collection;

/*
增强for循环
格式：
JDK1.5新特性，增强for循环
JDK1.5版本后，出现新的接口 java.lang.Iterable
Collection是继承Iterable
Iterable作用：实现增强for循环
格式：
for（数据类型，变量名：数组或集合）{
变量
}
 */
public class Collection2 {
    public static void main(String[] args) {
        function_3();
    }

    /*
    更加简洁的for循环，称为增强for循环，也可以叫foreach循环
    作用：用来遍历数组或者集合中的元素
     */
    private static void function_3() {
        Collection<Person> array=new ArrayList<Person>();
        array.add(new Person(110,"zhangsan"));
        array.add(new Person(111,"李四"));
        for (Person p:array){
            System.out.println(p);
        }
        for (Person person:array) {
            System.out.println(person);
        }
    }

    /*
    增强for循环，遍历数组或者集合
    好处：代码少了，方便对容器遍历
    弊端：没有索引，不能操作容器里面的元素
     */
    private static void function_2() {
        int[] arr={3,1,9,0};
        for (int i:arr){
            System.out.println(i+1);
        }
        System.out.println(arr[0]);
    }

    private static void function_1(){
        //for对于对象数组遍历的时候，能否调用对象的方法呢？
        String[] str={"abc","cn","hello"};
        for (String s:str){
            System.out.println(s.length());
        }
    }
}

class Person{
    private int id;
    private String name;

    public Person(int id, String name) {
        this.id = id;
        this.name = name;
    }
    public String toString(){
        return id+","+name;
    }
}
